package com.sys.service;

import com.sys.entity.BizGrowthBoxItem;
import com.sys.entity.BizTask;

import java.util.List;
import java.util.Map;

public interface GrowthBoxService {
    /**
     * 将任务标记为已掌握并收纳进成长盒
     * @param userId 用户ID
     * @param taskId 任务ID
     * @param note 备注
     */
    void addTaskToGrowthBox(Long userId, Long taskId, String note);
    
    /**
     * 获取用户成长盒中的所有任务
     * @param userId 用户ID
     * @return 成长盒任务列表（包含任务详情）
     */
    List<Map<String, Object>> getGrowthBoxTasks(Long userId);
    
    /**
     * 从成长盒中移除任务
     * @param userId 用户ID
     * @param itemId 成长盒项ID
     */
    void removeFromGrowthBox(Long userId, Long itemId);
    
    /**
     * 检查任务是否已在成长盒中
     * @param userId 用户ID
     * @param taskId 任务ID
     * @return 是否存在
     */
    boolean isTaskInGrowthBox(Long userId, Long taskId);
    
    /**
     * 获取成长盒中的所有任务ID
     * @param userId 用户ID
     * @return 任务ID列表
     */
    List<Long> getGrowthBoxTaskIds(Long userId);
}